namespace ext.form
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>Numeric text field that provides automatic keystroke filtering and numeric validation.</summary>
	/// <definedin>src\widgets\form\NumberField.js</definedin>
	[ScriptName("NumberField")]
	[ScriptNamespace("Ext.form")]
	[Imported()]
	public partial class NumberField : ext.form.TextField
	{
		
		#region Constructors
		/// <summary>Constructor</summary>
		/// <param name="config">Configuration options</param>
		public NumberField(ext.form.NumberField_Configuration config)
		{
		}
		
		/// <summary>Constructor</summary>
		public NumberField()
		{
		}
		#endregion
		
		#region Fields
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\NumberField.js</definedin>
		[ScriptName("stripCharsRe")]
		public System.RegularExpression StripCharsRe;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\NumberField.js</definedin>
		[ScriptName("maskRe")]
		public System.RegularExpression MaskRe;
		
		/// <summary>The default CSS class for the field (defaults to &quot;x-form-field x-form-num-field&quot;)</summary>
		/// <definedin>src\widgets\form\NumberField.js</definedin>
		[ScriptName("fieldClass")]
		public string FieldClass;
		
		/// <summary>False to disallow decimal values (defaults to true)</summary>
		/// <definedin>src\widgets\form\NumberField.js</definedin>
		[ScriptName("allowDecimals")]
		public bool AllowDecimals;
		
		/// <summary>Character(s) to allow as the decimal separator (defaults to &apos;.&apos;)</summary>
		/// <definedin>src\widgets\form\NumberField.js</definedin>
		[ScriptName("decimalSeparator")]
		public string DecimalSeparator;
		
		/// <summary>The maximum precision to display after the decimal separator (defaults to 2)</summary>
		/// <definedin>src\widgets\form\NumberField.js</definedin>
		[ScriptName("decimalPrecision")]
		public System.Number DecimalPrecision;
		
		/// <summary>False to prevent entering a negative sign (defaults to true)</summary>
		/// <definedin>src\widgets\form\NumberField.js</definedin>
		[ScriptName("allowNegative")]
		public bool AllowNegative;
		
		/// <summary>The minimum allowed value (defaults to Number.NEGATIVE_INFINITY)</summary>
		/// <definedin>src\widgets\form\NumberField.js</definedin>
		[ScriptName("minValue")]
		public System.Number MinValue;
		
		/// <summary>The maximum allowed value (defaults to Number.MAX_VALUE)</summary>
		/// <definedin>src\widgets\form\NumberField.js</definedin>
		[ScriptName("maxValue")]
		public System.Number MaxValue;
		
		/// <summary>Error text to display if the minimum value validation fails (defaults to &quot;The minimum value for this field is {minValue}&quot;)</summary>
		/// <definedin>src\widgets\form\NumberField.js</definedin>
		[ScriptName("minText")]
		public string MinText;
		
		/// <summary>Error text to display if the maximum value validation fails (defaults to &quot;The maximum value for this field is {maxValue}&quot;)</summary>
		/// <definedin>src\widgets\form\NumberField.js</definedin>
		[ScriptName("maxText")]
		public string MaxText;
		
		/// <summary>
		/// Error text to display if the value is not a valid number. For example, this can happen
		/// if a valid character like &apos;.&apos; or &apos;-&apos; is left in the field with no number (defaults to &quot;{value} is not a valid number&quot;)
		/// </summary>
		/// <definedin>src\widgets\form\NumberField.js</definedin>
		[ScriptName("nanText")]
		public string NanText;
		
		/// <summary>The base set of characters to evaluate as valid numbers (defaults to &apos;0123456789&apos;).</summary>
		/// <definedin>src\widgets\form\NumberField.js</definedin>
		[ScriptName("baseChars")]
		public string BaseChars;
		
		/// <summary>True to automatically strip not allowed characters from the field. Defaults to false</summary>
		/// <htmlSummary>True to automatically strip not allowed characters from the field. Defaults to &lt;tt&gt;false&lt;/tt&gt;</htmlSummary>
		/// <definedin>src\widgets\form\NumberField.js</definedin>
		[ScriptName("autoStripChars")]
		public bool AutoStripChars;
		#endregion
		
		#region Methods
		/// <summary>
		/// Runs all of NumberFields validations and returns an array of any errors. Note that this first
		/// runs TextField&apos;s validations, so the returned array is an amalgamation of all field errors.
		/// The additional validations run test that the value is a number, and that it is within the
		/// configured min and max values.
		/// </summary>
		/// <definedin>src\widgets\form\NumberField.js</definedin>
		/// <param name="value">The value to get errors for (defaults to the current field value)</param>
		/// <returns>All validation errors for this field</returns>
		[ScriptName("getErrors")]
		public System.Array GetErrors(object value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Replaces any existing {@link #minValue} with the new value.</summary>
		/// <definedin>src\widgets\form\NumberField.js</definedin>
		/// <param name="value">The minimum value</param>
		[ScriptName("setMinValue")]
		public void SetMinValue(System.Number value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Replaces any existing {@link #maxValue} with the new value.</summary>
		/// <definedin>src\widgets\form\NumberField.js</definedin>
		/// <param name="value">The maximum value</param>
		[ScriptName("setMaxValue")]
		public void SetMaxValue(System.Number value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
	}
}
